#ifndef __NET_TIME_H__
#define __NET_TIME_H__
#include <Arduino.h>
#include <time.h>

#define Y2K_SECONDS 946684800 // Seconds from 1970-01-01 00:00:00 to 2000-01-01 00:00:00 is 946684800
#define DAY_SECONDS 86400
#define y2kDays(aTime) (((aTime)-Y2K_SECONDS) / DAY_SECONDS)

/**
 * 网络计时类
 * */
class NetTime
{
public:
    /**
     * @brief 读取网络时间(要求sd卡中有wifi.cfg，其中有配网信息)
     *
     * @return 成功则返回时间(秒)，否则返回0
     */
    time_t getNetTime();

private:
    /**
     * @brief 连接无线网络
     * @param char *pWiFiSSID wifi名称
     * @param char *pWiFiPWD wifi密码
     * @return 成功则返回 true
     */
    bool connectWiFi(char *pWiFiSSID, char *pWiFiPWD);

    /**
     * 读取当前北京（东8区）时间
     * @param index 时间服务器序号 0-2
     * @return uint32_t 成功则返回时间，否则返回0
     * */
    uint32_t getNTPtime(int index);
};

#endif
